package org.learning.gc;


import java.util.ArrayList;
import java.util.List;

/**
 * @author XIAXINYU3
 * @date 2021/6/3
 * <p>
 * ygc测试
 * -Xms50m -Xmx50m -Xmn45m -XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log
 * ParallelGC: -Xms100M -Xmx100M -XX:MaxMetaspaceSize=10M -XX:MetaspaceSize=10M -XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log
 * G1GC: -Xms200M -Xmx200M -Xmn120M -XX:MaxMetaspaceSize=10M -XX:MetaspaceSize=10M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCTimeStamps -Xloggc:gc.log
 * 设置10m堆大小，年轻代和老年代各分5m，年轻代里伊甸区4m、两个幸存者区都是0.5m
 */
public class TestYoungGC2 {
    private static int _1MB = 1024 * 1024;

    public static void main(String[] args) throws InterruptedException {
        List cache = new ArrayList<byte[]>();
        //只能循环三次新增3M对象、到第4次就会发生ygc，因为eden本身不是完全4M可用的
        int counter = 0;
        while (true) {
            counter++;

            System.out.println("循环" + counter + "开始");
            cache.add(new byte[_1MB]);
            //cache.remove(0);
            Thread.sleep(500);
            System.out.println("循环" + counter + "结束");
        }
    }
}